package models

import "time"

//*********** 获取角色列表 ***********

// SysRolePageListParams 检索查询数据条件
type SysRolePageListParams struct {
	EndDate   string `form:"endDate,omitempty"`   // 结束日期
	Keywords  string `form:"keywords,omitempty"`  // 关键字(角色名称/角色编码)
	StartDate string `form:"startDate,omitempty"` // 开始日期
}

// SysRolePageListSelect 分页的用户查询结果: 表Select
type SysRolePageListSelect struct {
	Code       string `json:"code,omitempty"` // 角色编码
	CreateTime string `json:"createTime,omitempty"`
	ID         int64  `json:"id,omitempty"`     // 角色ID
	Name       string `json:"name,omitempty"`   // 角色名称
	Sort       int64  `json:"sort,omitempty"`   // 排序
	Status     int64  `json:"status,omitempty"` // 角色状态
	UpdateTime string `json:"updateTime,omitempty"`
}

// SysRolePageListRes 用户分页列表响应结果
type SysRolePageListRes struct {
	List     []SysRolePageListSelect `json:"list,omitempty"`
	Total    int64                   `json:"total,omitempty"`
	PageNum  int                     `json:"pageNum"`
	PageSize int                     `json:"pageSize"`
}

//*********** 角色下拉列表 ***********

// SysRoleOptions 下拉选项对象
type SysRoleOptions struct {
	//Children []OptionLong `json:"children,omitempty"` 	// 子选项列表
	Name string `gorm:"column:name" json:"label,omitempty"` // 选项的标签
	Id   int64  `gorm:"column:id" json:"value,omitempty"`   // 选项的值
}

//*********** 新增角色 ***********

// RoleForm 角色表单对象
type RoleForm struct {
	Code      string `json:"code"`                // 角色编码
	DataScope int64  `json:"dataScope,omitempty"` // 数据权限(0:全部数据,1:部门及子部门数据,2:本部门数据,3:本人数据)
	ID        int64  `json:"id,omitempty"`        // 角色ID
	Name      string `json:"name"`                // 角色名称
	Sort      int64  `json:"sort,omitempty"`      // 排序
	Status    int64  `json:"status,omitempty"`    // 角色状态(1-正常；0-停用)
}

type SysRoleAddData struct {
	Code       string    `gorm:"column:code" json:"code"`                      // 角色编码
	DataScope  int64     `gorm:"column:data_scope" json:"dataScope,omitempty"` // 数据权限(0:全部数据,1:部门及子部门数据,2:本部门数据,3:本人数据)
	ID         int64     `gorm:"column:id" json:"id,omitempty"`                // 角色ID
	Name       string    `gorm:"column:name" json:"name"`                      // 角色名称
	Sort       int64     `gorm:"column:sort" json:"sort,omitempty"`            // 排序
	Status     int64     `gorm:"column:status" json:"status,omitempty"`        // 角色状态(1-正常；0-停用)
	CreateTime time.Time `gorm:"column:create_time"`
	UpdateTime time.Time `gorm:"column:update_time"`
}

//*********** 角色表单数据 ***********

type SysRoleFormData struct {
	Code      string `gorm:"column:code" json:"code"`            // 角色编码
	DataScope int64  `gorm:"column:data_scope" json:"dataScope"` // 数据权限(0:全部数据,1:部门及子部门数据,2:本部门数据,3:本人数据)
	ID        int64  `gorm:"column:id" json:"id"`                // 角色ID
	Name      string `gorm:"column:name" json:"name"`            // 角色名称
	Sort      int64  `gorm:"column:sort" json:"sort"`            // 排序
	Status    int64  `gorm:"column:status" json:"status"`        // 角色状态(1-正常；0-停用)
}

//*********** 修改角色 ***********

// SysRoleEditData 修改角色数据表字段结构体
type SysRoleEditData struct {
	Code       string    `gorm:"column:code" json:"code"`                      // 角色编码
	DataScope  int64     `gorm:"column:data_scope" json:"dataScope,omitempty"` // 数据权限(0:全部数据,1:部门及子部门数据,2:本部门数据,3:本人数据)
	Name       string    `gorm:"column:name" json:"name"`                      // 角色名称
	Sort       int64     `gorm:"column:sort" json:"sort,omitempty"`            // 排序
	Status     int64     `gorm:"column:status" json:"status,omitempty"`        // 角色状态(1-正常；0-停用)
	CreateTime time.Time `gorm:"column:create_time"`
	UpdateTime time.Time `gorm:"column:update_time"`
}
